/**
 * @Description:
 * @Author: cnHuaShao
 * @File:  ConfigInit
 * @Version: 1.0.0
 */

package init

import (
	"IdentityAuthentication/cmd/common/model"
	"flag"
	"github.com/spf13/viper"
	"log"
)

var (
	configFile *string
)

// 主初始化入口
func init() {
	initStart()
	initConfig()
}

// 启动指令初始化
func initStart() {
	configFile = flag.String("c", "D:\\gomod\\IdentityAuthentication\\config\\config.ini", "需设置config配置文件")
}

// 配置文件初始化
func initConfig() {
	// 初始配置默认值
	model.Conf = model.NewConfig()
	// 加载启动时指定的配置文件
	viper.SetConfigFile(*configFile)
	err := viper.ReadInConfig()
	if err != nil {
		log.Println(err.Error())
	}
	// 动态解析配置文件，并覆盖默认配置
	if err := viper.Unmarshal(&model.Conf); err != nil {
		log.Println(err.Error())
	}
}
